#!/bin/bash
LOG_DIR="/var/log/myapp"
MAX_SIZE="100M"  # 日志大小阈值
RETENTION_DAYS=30

# 检查目录存在性
if [ ! -d "$LOG_DIR" ]; then
    echo "错误：日志目录不存在" >&2
    exit 1
fi

# 多条件清理逻辑
find "$LOG_DIR" -name "*.log" -type f | while read logfile; do
    # 条件1：按大小清理
    if [ $(du -b "$logfile" | cut -f1) -gt $(numfmt --from=iec $MAX_SIZE) ]; then
        gzip "$logfile" && echo "$(date) 压缩大文件: $logfile" >> "$LOG_DIR/clean.log"
    fi
    
    # 条件2：按时间清理
    if find "$logfile" -mtime +$RETENTION_DAYS | grep -q .; then
        rm -f "$logfile" && echo "$(date) 删除旧文件: $logfile" >> "$LOG_DIR/clean.log"
    fi
done
#功能亮点，双重清理条件（大小+时间） ，使用numfmt处理人类可读的大小单位（如100M），操作记录到专属清理日志 